Dynamic এবং Static Mapping এর ব্যবহার

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - Data Mapping এবং Schema Design
445

Dynamic এবং Static Mapping এর ব্যবহার

Elasticsearch-এ ডেটা ইন্ডেক্সিং-এর জন্য Dynamic এবং Static Mapping উভয় পদ্ধতি ব্যবহার করা যায়। প্রতিটি পদ্ধতির নিজস্ব সুবিধা এবং ব্যবহারিক ক্ষেত্রে রয়েছে। নিচে Dynamic এবং Static Mapping-এর বিস্তারিত আলোচনা এবং কখন, কীভাবে এগুলো ব্যবহার করা হয় তা নিয়ে আলোচনা করা হলো।

১. Dynamic Mapping

  • Dynamic Mapping ডিফল্টভাবে Elasticsearch-এ সক্রিয় থাকে। এটি একটি স্বয়ংক্রিয় প্রক্রিয়া, যেখানে Elasticsearch নতুন ডকুমেন্ট পাওয়ার পর নতুন ফিল্ড সনাক্ত করে এবং সেগুলোর ডেটা টাইপ স্বয়ংক্রিয়ভাবে নির্ধারণ করে।
  • Dynamic Mapping নতুন ডকুমেন্ট দ্রুত ইন্ডেক্স করার জন্য উপযোগী এবং যেসব ক্ষেত্রে ডেটার কাঠামো পরিবর্তন হতে পারে বা পূর্ব নির্ধারিত না থাকে, সেখানে এটি বেশ কার্যকর।

Dynamic Mapping-এর উদাহরণ

  • যদি Elasticsearch-এ একটি নতুন ডকুমেন্ট পাঠানো হয় এবং এর ফিল্ডগুলো পূর্বে ইন্ডেক্সে নির্ধারণ করা না থাকে, তখন Dynamic Mapping স্বয়ংক্রিয়ভাবে ফিল্ডগুলো ইন্ডেক্স করবে:
POST /my-dynamic-index/_doc
{
 "name": "John Doe",
 "age": 30,
 "occupation": "Engineer",
 "join_date": "2022-10-01"
}
  • এখানে Elasticsearch নতুন "name", "age", "occupation", এবং "join_date" ফিল্ড সনাক্ত করে এবং সেগুলোর ডেটা টাইপ স্বয়ংক্রিয়ভাবে নির্ধারণ করে:
    • "name" -> text
    • "age" -> integer
    • "occupation" -> text
    • "join_date" -> date
  • Dynamic Mapping ফিল্ড এবং ডেটা টাইপ স্বয়ংক্রিয়ভাবে নির্ধারণ করে এবং ডেটা দ্রুত ইন্ডেক্স করা যায়।

Dynamic Mapping কখন ব্যবহার করবেন

  • যখন ডেটার কাঠামো অগ্রিম নির্ধারণ করা সম্ভব নয় বা ডকুমেন্টের ফিল্ড এবং ডেটা টাইপ পরিবর্তন হতে পারে।
  • যখন দ্রুত নতুন ডকুমেন্ট ইন্ডেক্স করা প্রয়োজন এবং প্রতিটি ফিল্ড ম্যানুয়ালি নির্ধারণ করার প্রয়োজন নেই।
  • API বা লজিক্যাল সিস্টেমের মাধ্যমে অপ্রত্যাশিত ফিল্ড বা ডেটা টাইপ তৈরি হতে পারে, সেক্ষেত্রে Dynamic Mapping কার্যকর।

Dynamic Mapping-এর সুবিধা এবং সীমাবদ্ধতা

  • সুবিধা:
    • নতুন ডকুমেন্ট দ্রুত এবং স্বয়ংক্রিয়ভাবে ইন্ডেক্স করা যায়।
    • ম্যানুয়ালি ফিল্ড এবং ডেটা টাইপ নির্ধারণ করতে হয় না।
  • সীমাবদ্ধতা:
    • Dynamic Mapping সবসময় সঠিক ডেটা টাইপ নির্ধারণ করতে পারে না, যেমন সংখ্যা float বা integer হিসেবে সনাক্ত করা।
    • স্কিমা অনুমান করতে গিয়ে সার্চ পারফরম্যান্স কমতে পারে।

২. Static Mapping

  • Static Mapping একটি পদ্ধতি যেখানে ব্যবহারকারী বা ডেভেলপার ইন্ডেক্স তৈরির সময় ডকুমেন্টের প্রতিটি ফিল্ড এবং তার ডেটা টাইপ আগে থেকেই নির্ধারণ করে।
  • Static Mapping ব্যবহার করলে ডকুমেন্টের ফিল্ড এবং ডেটা টাইপ সবসময় সঠিক এবং নির্দিষ্ট থাকে, যা সার্চ অপারেশনের পারফরম্যান্স বাড়ায়।

Static Mapping-এর উদাহরণ

  • একটি ইন্ডেক্স তৈরি করার সময় ফিল্ডের ডেটা টাইপ নির্ধারণ করতে পারেন:
PUT /my-static-index
{
 "mappings": {
   "properties": {
     "name": { "type": "text" },
     "age": { "type": "integer" },
     "occupation": { "type": "keyword" },
     "join_date": { "type": "date", "format": "yyyy-MM-dd" }
   }
 }
}
  • এখানে:
    • "name" ফিল্ড text টাইপ হিসেবে নির্ধারণ করা হয়েছে।
    • "age" ফিল্ড integer হিসেবে, "occupation" ফিল্ড keyword হিসেবে এবং "join_date" ফিল্ড date টাইপ নির্ধারণ করা হয়েছে।
  • ডকুমেন্ট ইন্ডেক্স করার সময় Elasticsearch এই নির্ধারিত ফিল্ড টাইপ অনুসারে কাজ করবে এবং সঠিকভাবে ডেটা ইন্ডেক্স করবে।

Static Mapping কখন ব্যবহার করবেন

  • যখন ডেটার কাঠামো আগে থেকেই নির্ধারণ করা আছে এবং তা পরিবর্তন হওয়ার সম্ভাবনা নেই।
  • যখন ডকুমেন্টের ফিল্ড এবং ডেটা টাইপ নিশ্চিত করা প্রয়োজন এবং সঠিক ডেটা টাইপ নির্ধারণ করে সার্চ অপারেশন অপ্টিমাইজ করা প্রয়োজন।
  • যেসব ক্ষেত্রে পারফরম্যান্স এবং নির্ভুলতা গুরুত্বপূর্ণ, সেখানে Static Mapping ব্যবহার করা উচিত।

Static Mapping-এর সুবিধা এবং সীমাবদ্ধতা

  • সুবিধা:
    • সার্চ এবং ইন্ডেক্সিং পারফরম্যান্স উন্নত হয়, কারণ ডেটা টাইপ নির্ধারণ করা থাকে।
    • ফিল্ড এবং ডেটার নির্ভুলতা নিশ্চিত করা যায়, যা সার্চ অপারেশন সঠিকভাবে পরিচালনা করতে সহায়ক।
  • সীমাবদ্ধতা:
    • Dynamic Mapping-এর তুলনায় Static Mapping কিছুটা সময়সাপেক্ষ, কারণ প্রতিটি ফিল্ড ম্যানুয়ালি নির্ধারণ করতে হয়।
    • নতুন ফিল্ড যোগ করার জন্য Mapping আপডেট করতে হয়, যা Dynamic Mapping-এর মতো স্বয়ংক্রিয়ভাবে সম্পন্ন হয় না।

Dynamic এবং Static Mapping এর সংমিশ্রণ

  • আপনি Dynamic এবং Static Mapping একত্রে ব্যবহার করতে পারেন। যেমন, কিছু ফিল্ড Static Mapping-এ নির্ধারণ করা থাকবে এবং বাকি ফিল্ড Dynamic Mapping-এ যোগ করা হবে।
  • Dynamic Mapping নির্দিষ্ট ক্ষেত্রেই সীমাবদ্ধ রাখতে পারেন, যেখানে Static Mapping-এর বাইরে নতুন ডেটা যোগ করার প্রয়োজন হতে পারে।

Dynamic এবং Static Mapping এর সংমিশ্রণ উদাহরণ

PUT /mixed-index
{
  "mappings": {
    "dynamic": "true",
    "properties": {
      "product_id": { "type": "keyword" },
      "price": { "type": "float" }
    }
  }
}
  • এখানে "product_id" এবং "price" ফিল্ড Static Mapping-এ নির্ধারিত, কিন্তু অন্য নতুন ফিল্ড Dynamic Mapping ব্যবহার করে ইন্ডেক্স করা হবে।

উপসংহার

  • Dynamic Mapping সাধারণত দ্রুত নতুন ডকুমেন্ট ইন্ডেক্স করার জন্য এবং যেখানে ডেটার কাঠামো পূর্ব নির্ধারিত নয়, সেখানে ব্যবহৃত হয়।
  • Static Mapping নির্ধারিত এবং নির্ভুল ডেটার ক্ষেত্রে ব্যবহৃত হয়, যেখানে ফিল্ড এবং ডেটা টাইপ নিশ্চিত করা যায় এবং সার্চ পারফরম্যান্স উন্নত করা যায়।
  • Dynamic এবং Static Mapping একত্রে ব্যবহার করে ডেটার ফ্লেক্সিবিলিটি এবং নির্ভুলতা নিশ্চিত করা যায়, যা ডেটা ইন্ডেক্সিং এবং সার্চ অপারেশনের জন্য কার্যকরী হয়।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...